Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Проектування сканеру клавіатури із застосуванням діаграм скінчених автоматів для опису об'єктів в САПР Active-HDL

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2011
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Моделювання
Група:
КІ

Частина тексту файла

Міністерство Освіти і Науки Національний Університет «Львівська політехніка» кафедра ЕОМ Звіт про виконання лабораторної роботи №7 з предмету «Моделювання комп’ютерних систем» на тему : «Проектування сканеру клавіатури із застосуванням діаграм скінчених автоматів для опису об'єктів в САПР Active-HDL» Мета роботи: Вивчити принцип роботи сканера клавіатури. Отримати навички проектування цифрових пристроїв за допомогою скінчених автоматів засобами Active-HDL. Код програми : library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all; entity diagram is port ( CLK: in STD_LOGIC; Ret: in STD_LOGIC_VECTOR (15 downto 0); KeyCode: out STD_LOGIC_VECTOR (7 downto 0); Strobe: out STD_LOGIC; Scan: inout STD_LOGIC_VECTOR (3 downto 0); temp: inout STD_LOGIC_VECTOR (3 downto 0)); end diagram; architecture diagram_arch of diagram is -- diagram signals declarations signal Cond: STD_LOGIC :='0'; -- SYMBOLIC ENCODED state machine: Diagram type Diagram_type is ( S0, S2, S3, S4, S1, S5 ); -- attribute enum_encoding of Diagram_type: type is ... -- enum_encoding attribute is not supported for symbolic encoding signal Diagram: Diagram_type; begin ---------------------------------------------------------------------- -- Machine: Diagram ---------------------------------------------------------------------- Diagram_machine: process (CLK) begin if CLK'event and CLK = '1' then -- Set default values for outputs, signals and variables -- ... case Diagram is when S0 => Scan <= "1111"; Strobe <= '0'; if Cond = '0' then Diagram <= S0; elsif Cond = '1' then Diagram <= S1; end if; when S2 => Scan <= "0010"; temp <= Ret (7 downto 4); if Cond = '0' then Diagram <= S3; elsif Cond = '1' then Diagram <= S5; end if; when S3 => Scan <= "0100"; temp <= Ret (11 downto 8); if Cond = '0' then Diagram <= S4; elsif Cond = '1' then Diagram <= S5; end if; when S4 => Scan <= "1000"; temp <= Ret (15 downto 12); if Cond = '1' then Diagram <= S5; elsif Cond = '0' then Diagram <= S0; end if; when S1 => Scan <= "0001"; temp <= Ret (3 downto 0); if Cond = '1' then Diagram <= S5; elsif Cond = '0' then Diagram <= S2; end if; when S5 => Strobe <= '1'; Scan <= "1111"; if Cond = '0' then Diagram <= S1; elsif Cond = '1' then Diagram <= S5; end if; --vhdl_cover_off when others => null; --vhdl_cover_on end case; end if; end process; -- signal assignment statements for combinatorial outputs Cond_assignment: Cond <= Ret(0) or Ret(1) or Ret(2) or Ret(3)or Ret(4)or Ret(5)or Ret(6)or Ret(7)or Ret(8)or Ret(9)or Ret(10)or Ret(11)or Ret(12)or Ret(13)or Ret(14)or Ret(15) when (Diagram = S0) else Ret(4) or Ret (5) or Ret (6) or Ret (7) when (Diagram = S2) else Ret(8) or Ret (9) or Ret (10) or Ret (11) when (Diagram = S3) else Ret(12) or Ret (13) or Ret (14) or Ret (15) when (Diagram = S4) else Ret(0) or Ret(1) or Ret(3) when (Diagram = S1) else '0' when (Diagram = S5) else Ret(0) or Ret(1) or Ret(2) or Ret(3)or Ret(4)or Ret(5)or Ret(6)or Ret(7)or Ret(8)or Ret(9)or Ret(10)or Ret(11)or Ret(12)or Ret(13)or Ret(14)or Ret(15); KeyCode_7_assignment: KeyCode(7) <= '0' when (Diagram = S0) else Scan(3) when (Diagram = S5) else '0'; KeyCode_6_assignment: KeyCode(6) <= '0' when (Diagram = S0) else Scan(2) when (Diagram = S5) else '0'; KeyCode_5_assignment: KeyCode(5) <= '0' when (Diagram = S0) else Scan(1) when (Diagram = S5) else '0'; KeyCode_4_assignment: KeyCode(4) <= '0' when (Diagram = S0) else Scan(0) when (Diagram = S5) else '0'; KeyCode_3_assignment: KeyCode(3) <= '0' when (Diagram = S0) else temp(3) when (Diagram = S5) else ...
Антиботан аватар за замовчуванням

25.11.2012 18:11

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини